package com.dragon.app.marvel2;

import com.dragon.app.um.vo.JsonResult;
import com.fintech.common.vo.FintechResult;

/**
 * 新核心系统跟老核心系统的对接扭转服务类
 * @author shan
 *
 */
public interface NewMarvelCoreService {

	/**
	 * 新核心系统是否打开的一个开关
	 * @param  idCard 身份证号  如果传null的话 则只判断new_marvel_start 
	 * @param  loanId 贷款单号  
	 * @return  true 走新核心逻辑  false走旧核心逻辑
	 * @author laijingshan
	 * @date 2018年9月20日
	 */
	public boolean isMarvelStart(String idCard, String loanId);
	
	/**
	 * 发送post请求
	 * @param url   		发送请求的url
	 * @param param 		这个会格式化成json串作为请求体发送
	 * @param resultClass	JsonResult 这个的泛型类型
	 * @return
	 * @author laijingshan
	 * @date 2018年9月20日
	 */
	public <T>JsonResult<T> getForObjectPost(String url, Object param, Class<T> resultClass);
	/**
	 * 发送post请求
	 * @param url   		发送请求的url
	 * @param param 		这个会格式化成json串作为请求体发送
	 * @param resultClass	JsonResult 这个的泛型类型
	 * @return
	 * @author laijingshan
	 * @date 2018年9月20日
	 */
	public FintechResult getForObjectPost(String url, Object param);
	
	/**
	 * 发送post请求
	 * @param url   		发送请求的url
	 * @param param 		这个会格式化成json串作为请求体发送
	 * @param resultClass	JsonResult 这个的泛型类型
	 * @return
	 * @author laijingshan
	 * @date 2018年9月20日
	 */
	public <T>com.dragon.app.commons.vo.JsonResult<T> getForObjectPostRepayment(String url, Object param, Class<T> resultClass);
	
	/**
	 * 根据新核心的code 返回老核心的code
	 * @param newMarvelCode 新核心的code
	 * @return
	 * @author laijingshan
	 * @date 2018年9月20日
	 */
	public String getCodeMapper(String newMarvelCode);
	/**
	 * 发送到新核心
	 * @param loanId 贷款单号  发送到新核心
	 * @return
	 * @author laijingshan
	 * @date 2018年9月27日
	 */
	public void sendLoanApplyMessage(String loanId);
	
}
